function test(a, b) {
    console.log(a);
    console.log(b);
    var b = 234;
    console.log(b);
    a = 123;
    console.log(a);

    function a() {

    }
    var a;
    b = 234;
    var b = function() {

    }
    console.log(a);
    console.log(b);

}

test(1);

/**
 * 预编译过程
 * 1.创建AO
 * AO{
 * }
 * 2.形参和变量声明
 * AO{
 * a:undefined
 * b:undefined
 * }
 * 3.将形参实参统一
 * AO{
 * a:1
 * b:undefined
 * }
 * 4.查找函数声明
 * AO{
 * a:function a(){}
 * b:undefined
 * }
 * 
 * //开始执行代码
 * //打印a [Function:a]
 * //打印b undefined
 * b = 234;
 * //打印b 234
 * a = 123;
 * //打印a  123;
 * b = function(){}
 * //打印a 123
 * //打印b [Function:b]
 */